/** @type {import('knex').Knex} */
exports.up = function(knex) {
  return knex.schema.createTable('n1790_rack_server', table => {
    table.increments('_id').unsigned().primary().comment('ID，主键，自动递增');
    table.integer('机柜ID').unsigned().notNullable().comment('关联的机柜ID');
    table.integer('资产ID').unsigned().notNullable().comment('关联的资产ID');
    table.integer('起始U位').notNullable().comment('设备安装的起始U位');
    table.integer('设备大小').defaultTo(1).comment('设备占用U数');
    table.string('服务器类型', 20).nullable().comment('服务器类型(standard/network/storage/special)');
    table.text('备注').nullable().comment('备注信息');
    table.integer('是否禁用').defaultTo(0).comment('是否禁用');
    table.integer('是否删除').defaultTo(0).comment('是否被删除');
    table.timestamp('_create').defaultTo(knex.fn.now()).notNullable().comment('记录创建时间');
    table.timestamp('_update')
      .defaultTo(knex.raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'))
      .notNullable()
      .comment('记录更新时间');
      
    // 添加外键约束
    table.foreign('机柜ID').references('_id').inTable('n1790_rack_info').onDelete('CASCADE');
    table.foreign('资产ID').references('_id').inTable('n1790_r5xnmdhjm4_zichan_info').onDelete('CASCADE');
  });
};

exports.down = function(knex) {
  return knex.schema.dropTable('n1790_rack_server');
}; 